package done.easy_201_300;

import lombok.extern.slf4j.Slf4j;
import org.junit.Test;

/**
 * 290. Word Pattern 单词模式
 * <p>
 * 给定一种 pattern(模式) 和一个字符串 str ，判断 str 是否遵循相同的模式。
 * 这里的遵循指完全匹配，例如， pattern 里的每个字母和字符串 str 中的每个
 * 非空单词之间存在着双向连接的对应模式。
 * <p>
 * 示例1:
 * 输入: pattern = "abba", str = "dog cat cat dog"
 * 输出: true
 * <p>
 * abba -> dog cat cat dog
 * a -> dog
 * b -> cat
 *
 * @author 大硕
 * 2019-03-31 7:21 PM
 **/
@Slf4j
public class WordPattern {

    @SuppressWarnings("all")
    public boolean wordPattern(String pattern, String str) {
        // 190331 first
        return false;
    }

    @Test
    public void test() {
        log.info("{}", wordPattern("abba", "dog cat cat dog"));
    }
}


































/*
public boolean wordPattern(String pattern, String str) {
    Map<Character, String> map = new HashMap<>();

    String[] s = str.split(" ");
    char[] p   = pattern.toCharArray();

    if (s.length != p.length)
        return false;

    for (int i=0; i<p.length; i++){
        // 命中了key 但是value却不一样 就是不匹配 返回 false
        if (map.containsKey(p[i]) && !map.get(p[i]).equals(s[i]))
            return false;

        // 如果模式不存在, 有可能会加入map
        if (!map.containsKey(p[i])){

            // 如果模式不存在 却找到了 value 也是不匹配 返回false
            if (map.containsValue(s[i]))
                return false;
            // a -> dog
            // b -> cat
            map.put(p[i], s[i]);
        }
    }
    return true;
}
*/
